http://www.mentor.com/dsm/
Tadpole
Avant!
Click here for EDAToolsCafe Click here for EDAToolsCafe Click here for Internet Business Systems Click here for Hewlett Packard Click here for EDAToolsCafe
Search:
  Home | EDAVision | Companies | Downloads | Interviews | Forums | News | Resources |  ItZnewz  | |   | PCBCafe
  Check Mail | Submit Material | Universities | Books & Courses | Events | Membership | Fun Stuff | Advertise |
 Browse eCatalog:  Subscribe to EDA Daily News
eCatalogAsic & ICPCBFPGADesign ServicesHardwareSIP
Email: 
 EDAToolsCafe 

Printer Friendly Version

Fast Design Compiler 64bit HP-UX Release in June 2002

Joint Synopsys and Hewlett-Packard Profile Based Optimization Project

Porting 32bit applications to 64bit generally results in a performance degradation of 5% to 20% due to normal factors including increased pointer size and memory requirements. This loss of performance is the main reason EDA customers continue to use 32bit applications. Synopsys and Hewlett-Packard engineers have been working together not only to bridge this gap, but to go even further, using Profile Based Optimization (PBO) to optimize Design Compiler 64bit HP-UX to provide impressive performance improvements. The June 2002 release of Design Compiler 64bit is now 30%-60% faster than it’s previous version, based on the tests run by Synopsys.

In PBO, the C/C++ compiler and linker work together to optimize an application based on profile data obtained from running the application on typical data sets called “training sets.” PBO uses this profile data, called “flow data,” to guide a subsequent C/C++ compiler optimization primarily in the following areas: prediction of branches in the code, accurate targeting of high cost but effective cross-module optimizations (+O4 on HP) to the highest profile modules, and intelligently managing inlining so that working sets fit within instruction caches.

The trends in computer architectures (i.e., RISC and IA64) and toward more modular programming using high overhead languages like C++ have widened the void between hardware and software, thus driving the development of PBO by all computer vendors. With PBO, application developers can focus their performance investment on algorithms which scale well with problem size and worry less about compiler and platform dependencies. Users, developers and computer hardware are all more productive.


PBO Overview
Most applications benefit from PBO. Two types of applications that benefit the most are:
Applications that exhibit poor instruction memory locality. These are usually large applications in which the most common paths of execution are spread across multiple compilation units. The loops in these applications typically contain large numbers of statements, procedure calls, or both.
Applications that are branch-intensive. The operations performed in such applications are highly dependent on the input data. User interface managers, database managers, editors, and compilers are examples of such applications.

PBO involves these steps:

  •         Instrumentation - prepare the application so that it will generate profile data.
  •         Profiling – run the training set to collect the profile data.
  •         Optimization - generate optimized code based on the profile data.

    A Simple Example
    Suppose you want to apply PBO to an application called sample. The application is built from a C source file sample.c. Discussed below are the steps involved in optimizing the application.
    Step 1 - Instrumentation
    First, compile and link the application with instrumentation and level 2 optimization:
    $ cc +I -O –c sample.c
    $ cc +I -O -o sample.inst sample.o

    At this point, you have an instrumented program called sample.inst.

    Step 2 - Profiling
    Assuming you have two representative input files to use for profiling, input.file1 and input.file2, and our simple application expects these as input, execute the following two commands:
    $ sample.inst < input.file1
    $ sample.inst < input.file2

    The first invocation of sample.inst creates the flow.data file and accumulates profile information in it. The second invocation increments the counters for sample.inst in the flow.data file. The collection of profile data can continue in this manner, using more input files, if desired.
    Choosing Training Sets
    For best results, the training set should represent normal user execution of the application. Input data that represents rare cases or error conditions is usually not effective for profiling. Run the instrumented program with input data that closely resembles the data in a typical user’s environment. Then the optimizer will focus its efforts on the parts of the program that are critical to performance in the user's environment. You should not have to do a large number of profiling runs before the optimization phase. Usually it is adequate to select a small number of representative input data sets.

    Step 3 - Optimization
    To perform profile based optimizations on this application, relink the program as follows:
    $ cc -o sample.opt +P +pgm sample.inst +df flow.data
    +Oselectivepercent3.0 sample.o


    Note that it was not necessary to recompile the source file. The selectivepercent switch specifies what percent of the top calling arcs to optimize, 3% in this example. The +pgm option was used because the executable name used during instrumentation, sample.inst, does not match the current output file name, sample.opt. The +df option was included as an example but is only necessary when the profile database file is not the default flow.data.

    The application of PBO to Synopsys’ industry leading 64 bit Design Compiler demonstrates the impressive performance gains possible. As a result Design Compiler is even more competitive. Your products can benefit from PBO, too.

  • http://www.mentor.com/dsm/
    http://www.mentor.com/pcb/
    http://www.mentor.com/dft/
    http://hdlsolutions.mentor.com/
    SynaptiCAD


    Click here for Internet Business Systems Copyright 2002, Internet Business Systems, Inc.
    1-888-44-WEB-44 --- marketing@ibsystems.com